home *** CD-ROM | disk | FTP | other *** search
- In article <721@vercors.frec.bull.fr> frank@mapd.frec.bull.fr () writes:
- >Does anyone have the details of .ROL files used by AdLib and compatible
- >cards on PC? I need it for my Turbo C ROL editor...
- >Thanx.
-
- OK. Here it is...
-
-
- From: holmes@mrx.webo.dg.com (Chris Holmes)
- Subject: Adlib .ROL file format
- Date: Wed, 26 Aug 92 12:04:43 GMT
-
- I requested this a while back and got a couple of requests for a summary,
- so here goes:
-
- Files containing note information (i.e. songs) are suffixed with ".ROL".
- ("File version" and "editing scale" are non-musical information used by Visual
- Composer (TM).)
-
- Structure of .ROL files:
- __________________________________________________________________
-
- fld # size type description
- (bytes)
-
- 1 2 int file version, major
- 2 2 int file version, minor
- 3 40 char unused
- 4 2 int ticks per beat
- 5 2 int beats per measure
- 6 2 int editing scale (Y axis)
- 7 2 int editing scale (X axis)
- 8 1 char unused
- 9 1 char 0 = percussive mode
- 1 = melodic mode
- 10 90 char unused
- 11 38 char filler
- 12 15 char filler
- 13 4 float basic tempo
-
- Field 14 indicates the number of times to repeat fields 15 and 16:
-
- 14 2 int number of tempo events
- 15 2 int time of events, in ticks
- 16 4 float tempo multiplier (0.01 - 10.0)
-
- The remaining fields (17 to 34) are to be repeated for each of 11 voices:
-
- 17 15 char filler
- 18 2 int time (in ticks) of last note +1
-
- Repeat the next two fields (19 and 20) while the summation of field 20 is
- less than the value of field 18:
-
- 19 2 int note number: 0 => silence
- from 12 to 107 => normal note (you must
- subtract 60 to obtain the correct value
- for the sound driver)
- 20 2 int note duration, in ticks
- 21 15 char filler
-
- Field 22 indicates the number of times to repeat fields 23 to 26:
-
- 22 2 int number of instrument events
- 23 2 int time of events, in ticks
- 24 9 char instrument name
- 25 1 char filler
- 26 2 int unused
- 27 15 char filler
-
- Field 28 indicates the number of times to repeat fields 29 and 30:
-
- 28 2 int number of volume events
- 29 2 int time of events, in ticks
- 30 4 float volume multiplier (0.0 - 1.0)
- 31 15 char filler
-
- Field 32 indicates the number of times to repeat fields 33 and 34:
-
- 32 2 int number of pitch events
- 33 2 int time of events, in ticks
- 34 4 float pitch variation (0.0 - 2.0, nominal is 1.0)
-
- Notes
- _____
-
- Fields #1 and #2 should be set to 0 and 4 respectively. Field #10 should
- be filled with zeros.
-
- PS:
- a 4 byte 'float' in the 80x86 family look like follows:
-
- Sign biased
- -bit exponent significant
- 31 30..23 22..0
- ^
- `- here an implicite "1." is assumed
- exponent bias = 127 (0x7F)
-
- eg. 0.5 = 1* 2^(-1) ==> sign=0, exp=127-1, signif=(1.)0000000
-
- 10987654 32109876 54321098 76543210
- 33222222 22221111 11111100 00000000
- 0 0000000 00000000 00000000
- 0111111 0
- -----------------------------------------------------------------
-